const app = getApp();
import { get } from '../../../utils/request';
import auth from '../../../utils/auth';

Page({
  data: {
    providerInfo: null,
    services: [],
    loading: true,
    lastUpdate: ''
  },

  onLoad() {
    this.checkPermission();
    this.loadProviderInfo();
  },

  onShow() {
    // 每次页面显示时刷新数据
    this.loadProviderInfo();
  },

  // 检查权限
  checkPermission() {
    // 只允许服务人员访问
    if (!auth.isProvider()) {
      wx.showToast({
        title: '您不是服务人员，无法访问此页面',
        icon: 'none'
      });

      setTimeout(() => {
        wx.navigateBack();
      }, 1500);
    }
  },

  // 加载服务人员信息
  loadProviderInfo() {
    this.setData({ loading: true });

    const userInfo = auth.getUserInfo();
    if (!userInfo || !userInfo.id) {
      this.setData({ loading: false });
      return;
    }

    // 获取服务人员详细信息
    get(`/api/service-provider/get/vo`, { id: userInfo.id })
      .then(res => {
        if (res.code === 0 && res.data) {

          // 处理性别显示
          if (res.data.gender) {
            if (res.data.gender.toLowerCase() === 'male') {
              res.data.gender = '男';
            } else if (res.data.gender.toLowerCase() === 'female') {
              res.data.gender = '女';
            }
          }

          // 格式化注册时间
          if (res.data.createTime) {
            res.data.createTime = this.formatTime(res.data.createTime);
          }

          // 确保评分是数字类型
          try {
            if (res.data.rating !== undefined && res.data.rating !== null) {
              // 转为数字并保留一位小数
              let rating = parseFloat(res.data.rating);
              if (!isNaN(rating)) {
                res.data.rating = rating;
              } else {
                res.data.rating = null;
              }
            }
          } catch (error) {
            console.error('处理评分时出错:', error);
            res.data.rating = null;
          }

          this.setData({
            providerInfo: res.data,
            lastUpdate: new Date().toLocaleString()
          }, () => {
          });

          // 加载该服务人员提供的服务列表
          this.loadProviderServices(res.data.id);
        } else {
          // 如果获取详细信息失败，尝试获取基本信息
          return get(`/api/orders/provider/getInfo`);
        }
      })
      .then(res => {
        // 只有在第一个请求失败时才会执行
        if (res && res.code === 0 && res.data) {
          // 处理性别显示
          if (res.data.gender) {
            if (res.data.gender.toLowerCase() === 'male') {
              res.data.gender = '男';
            } else if (res.data.gender.toLowerCase() === 'female') {
              res.data.gender = '女';
            }
          }

          // 格式化注册时间
          if (res.data.createTime) {
            res.data.createTime = this.formatTime(res.data.createTime);
          }

          // 确保评分是数字类型
          try {
            if (res.data.rating !== undefined && res.data.rating !== null) {
              // 转为数字并保留一位小数
              let rating = parseFloat(res.data.rating);
              if (!isNaN(rating)) {
                res.data.rating = rating;
              } else {
                res.data.rating = null;
              }
            }
          } catch (error) {
            console.error('处理评分时出错:', error);
            res.data.rating = null;
          }

          this.setData({
            providerInfo: res.data,
            lastUpdate: new Date().toLocaleString()
          });

          // 加载该服务人员提供的服务列表
          this.loadProviderServices(res.data.id);
        }
      })
      .catch(err => {
        console.error('获取服务人员信息失败:', err);
        wx.showToast({
          title: '网络错误，请稍后重试',
          icon: 'none'
        });
      })
      .finally(() => {
        this.setData({ loading: false });
      });
  },

  // 加载服务人员提供的服务列表
  loadProviderServices(providerId) {
    get(`/api/provider-service/approved/byId`)
      .then(res => {
        if (res.code === 0) {
          this.setData({
            services: res.data.records || []
          });
        }
      })
      .catch(err => {
        console.error('获取服务列表失败:', err);
      });
  },

  // 刷新数据
  onRefresh() {
    this.loadProviderInfo();
  },

  // 跳转到服务管理页面
  goToMyServices() {
    wx.navigateTo({
      url: '/pages/provider/services/services?tab=1'
    });
  },

  // 跳转到服务详情页面
  goToServiceDetail(e) {
    const serviceId = e.currentTarget.dataset.id;
    wx.navigateTo({
      url: `/pages/provider/services/detail/detail?id=${serviceId}`
    });
  },

  // 跳转到我的订单页面
  goToMyOrders() {
    wx.navigateTo({
      url: '/pages/provider/orders/orders'
    });
  },

  // 跳转到个人资料页面
  goToProfile() {
    wx.navigateTo({
      url: '/pages/provider/profile/profile'
    });
  },

  // 格式化时间
  formatTime(timeString) {
    if (!timeString) return '';
    // 将ISO格式的时间字符串转换为更易读的格式
    return timeString.replace('T', ' ').substring(0, 16);
  }
})